import java.util.Scanner;

public class ArrayQueueDemo {
	public static void main(String[] args){
//	//测试
//		ArrayQueue arrayQueue = new ArrayQueue(3);
//		char key = ' ';//接收用户输入
//		Scanner scanner = new Scanner(System.in);
//		boolean loop = true;
//		while(loop){
//			System.out.println("s(show):显示队列");
//			System.out.println("e(exit):退出程序");
//			System.out.println("a(add):添加数据");
//			System.out.println("g(get):取出数据");
//			System.out.println("h(head):查看对头元素");
//			key = scanner.next().charAt(0);//接收一个字符
//			switch (key){
//				case 's':
//					arrayQueue.showQueue();
//					break;
//				case 'a':
//					System.out.print("请输入一个数：");
//					int value = scanner.nextInt();
//					arrayQueue.addQueue(value);
//					break;
//					case 'g':
//						try {
//							int res = arrayQueue.getQueue();
//							System.out.printf("取出的数据是%d/n",res);
//							}
//						catch(Exception e){
//							System.out.println("e.");
//						}
//
//					break;
//				default:
//					break;
//			}
//		}
	}
}

//使用数组模拟队列-编写一个ArrayQueue类
class ArrayQueue{
	private int maxSize;//最大容量
	private int front;//队列头
	private int rear;//队列尾
	private int[] arr;//存放数据
	
	//创建队列构造器
	public ArrayQueue(int arrMaxsize){
		maxSize = arrMaxsize;
		arr = new int[maxSize];
		front = -1;//指向队列头部的前一个位置
		rear = -1;//指向队列尾的具体数据
	}
	
	//判断是否满
	public boolean isFull(){
		return rear == maxSize - 1;
	}
	
	public boolean isEmpty(){
		return rear == front;
	}
	
	public void addQueue(int n){
		//判断是否满
		if(isFull()){
			System.out.println("队列满，不能加入");
			return;
		}
		rear++;//让rear后移
		arr[rear] = n;
	}
	
	//获取队列的数据
	public int getQueue(){
		//判断是否为空
		if(isEmpty()){
			throw new RuntimeException("队列空，不能取数据");
		}
		front++;
		return arr[front];
	}
	
	//显示所有数据
	public void showQueue(){
		if(isEmpty()){
			System.out.println("队列为空");
			return;
		}
		for (int i = 0; i < arr.length; i++){
			System.out.printf("arr[%d]\n",i,arr[i]);
		}
	}
	
	//显示队头元素是什么
	public int headQueue(){
		if (isEmpty()){
			throw new RuntimeException("队空");
		}
		;		return arr[front++];
	}
}
